container_aria

my file learn about tech container (docker, podman, kubernetes)


Project maintained by ariafatah0711 Hosted on GitHub Pages — Theme by mattgraham

docker compose

perintah compose

# docker-compose or docker compose

docker-compose up --force-recreate # create ulang / network yang error

docker-compose create # membuat container
docker-compose start # start container semua docker container yang di konfigurasi
docker-compose ps # list container yang ada pada file konfigurasi
docker-compose stop # stop container yang ada pada konfigurasi
docker-compose down # menghapus container, volume, network (meskipun sedang container berjalan)

docker-compose ls # list docker compose (list berdasarkan nama folder yang berisi docker-compose.yaml yang sudah dibuat)
docker-compose build # hanya melakukan build docker file / image

docker compose -f prod.yaml create
docker compose -f prod.yaml start
docker compose -f prod.yaml down

docker compose -f docker-compose.yaml -f prod.yaml create

docker events --filter 'container=nama' # melihat kejadian secara realtime

konfigurasi

port

environment variable

environment
    MONGO_INITDB_ROOT_USERNAME: ariafatah
    MONGO_INITDB_ROOT_PASSWORD: ariafatah
    MONGO_INITDB_DATABASE: 

bind mount

volume

volumes:
    mongo-data1:
        name: mongo-data-1
    mongo-data-2:
        name: mongo-data-2

services:
    mongodb-1:
        volumes:
            - "mongo-data-1:/data/db"
    mongodb-2:
        volumes:
            - type: volume
                source: mongo-data-2
                target: "/data/db"
                read_only: false

network

networks:
    network-harbas:
        name: network-harbas
        driver: bridge/host/none # type network 
mongodb-harbas:
    networks:
        - network-harbas

depends on

services:
  mongodb-server: # ini
    image: mongo
  mongodb-express-web:
    container_name: mongodb-express-web
    image: mongo-express
    depends_on:
      - mongodb-server # id nya bukan name contianer

restart

restart: <option>

# option
no #default nya tidak pernah restart
always # selalu restart jika container berhenti
on-failure # restart jika container error dengan indikasi error ketike exit
unless-stopped # selalu restart container ketika dihentikan manual

resource limit

deploy:
    resources:
        reservations:
            cpus: "0.25"
            memory: 50M
        limits:
            cpus: "0.5"
            memory: 100M

docker file

services:
  app:
    container_name: app
    build:
      context: ./app
      dockerfile: dockerfile
    image: "app-golang:1.0.0" # nama image 
    environment:
      - "APP_PORT=9000"
    ports:
      - "9000:9000"

# context => lokasi folder path berisi dockerfile
# dockerfil => nama dockerfile
# image => nama image hasil build
# args => argument untuk environment docker file

health check

    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 1m30s
      timeout: 30s
      retries: 3
      start_period: 5s

health check
# test => berisikan cara melakukan test health check
# interval
# timeout
# retries => total retry
# start_period => waktu mulai

extend service

version: '3.9'

services:
  app:
    container_name: app
    build:
      context: "./app"
      dockerfile: Dockerfile
    image: "app-golang:3.0.0"
    environment:
      - "APP_PORT=8080"
      - "MODE=local"
    ports:
      - "8080:8080"